package com.linkgie.galaxyframework.shell;

import org.springframework.shell.Input;
import org.springframework.shell.InputProvider;
import org.springframework.shell.jline.PromptProvider;

/**
 * 可指定输入回显掩码的输入提供者；
 * 
 * @author liso
 */
public interface MaskInputProvider extends InputProvider {

	/**
	 * 显示指定的提示符，读取输入，并以指定的掩码回显；
	 * 
	 * @param mask           用户输入时回显给终端的掩码；如果为 null 则不回显；
	 * @param promptProvider 提示符提供者；
	 * @return
	 */
	Input readInput(Character mask, PromptProvider promptProvider);

	/**
	 * 按选项读取；
	 * 
	 * @param promptProvider 提示符；
	 * @param optionRequired 是否必须从选项中选取；
	 * @param options        选项列表；
	 * @return
	 */
	Input readInput(PromptProvider promptProvider, boolean optionRequired, InputOption... options);
}
